Самые интересные фичи Python 3.12, которые уже можно тестить и встраивать в проекты
1️⃣ Улучшенный match-case
Теперь можно использовать «захват» значений прямо в паттернах:
def http_status(code): match code: case 200 | 201 | 202 as ok: return f"Success: {ok}" case 400 as bad | 404 as bad: return f"Client error: {bad}" case _: return "Other"
Большая гибкость и меньше «шаблонных» переменных!
2️⃣ Новый оператор f”{…=}" для отладки
Позволяет вывести и имя, и значение переменной в одной строке:
user = "Alice" age = 29 print(f"{user=}, {age=}") # Выведет: user='Alice', age=29
Больше никаких лишних print("user", user)!
3️⃣ Оптимизация работы с памятью и скорость
Команда CPython продолжает ускорение интерпретатора:
* Выделение объектов стало быстрее * Сборщик мусора реже «паузит» приложение
Это особенно заметно в тяжёлых сервисах и бэкендах.
4️⃣ Новые API для типов
Добавили typing.Self и более гибкие Generic-типизации:
from typing import Self
class Builder: def set_name(self, name: str) -> Self: self.name = name return self
b = Builder().set_name("Demo")
Удобнее писать цепочки вызовов без «# type: ignore»!
💡Что попробовать прямо сейчас?
1. Установить Python 3.12 pre-release:
pyenv install 3.12.0b4
2. Переписать пару функций с match-case. 3. Пощупать f"{var=}" в дебаге.
Самые интересные фичи Python 3.12, которые уже можно тестить и встраивать в проекты
1️⃣ Улучшенный match-case
Теперь можно использовать «захват» значений прямо в паттернах:
def http_status(code): match code: case 200 | 201 | 202 as ok: return f"Success: {ok}" case 400 as bad | 404 as bad: return f"Client error: {bad}" case _: return "Other"
Большая гибкость и меньше «шаблонных» переменных!
2️⃣ Новый оператор f”{…=}" для отладки
Позволяет вывести и имя, и значение переменной в одной строке:
user = "Alice" age = 29 print(f"{user=}, {age=}") # Выведет: user='Alice', age=29
Больше никаких лишних print("user", user)!
3️⃣ Оптимизация работы с памятью и скорость
Команда CPython продолжает ускорение интерпретатора:
* Выделение объектов стало быстрее * Сборщик мусора реже «паузит» приложение
Это особенно заметно в тяжёлых сервисах и бэкендах.
4️⃣ Новые API для типов
Добавили typing.Self и более гибкие Generic-типизации:
from typing import Self
class Builder: def set_name(self, name: str) -> Self: self.name = name return self
b = Builder().set_name("Demo")
Удобнее писать цепочки вызовов без «# type: ignore»!
💡Что попробовать прямо сейчас?
1. Установить Python 3.12 pre-release:
pyenv install 3.12.0b4
2. Переписать пару функций с match-case. 3. Пощупать f"{var=}" в дебаге.
In many cases, the content resembled that of the marketplaces found on the dark web, a group of hidden websites that are popular among hackers and accessed using specific anonymising software.“We have recently been witnessing a 100 per cent-plus rise in Telegram usage by cybercriminals,” said Tal Samra, cyber threat analyst at Cyberint.The rise in nefarious activity comes as users flocked to the encrypted chat app earlier this year after changes to the privacy policy of Facebook-owned rival WhatsApp prompted many to seek out alternatives.
Should I buy bitcoin?
“To the extent it is used I fear it’s often for illicit finance. It’s an extremely inefficient way of conducting transactions, and the amount of energy that’s consumed in processing those transactions is staggering,” the former Fed chairwoman said. Yellen’s comments have been cited as a reason for bitcoin’s recent losses. However, Yellen’s assessment of bitcoin as a inefficient medium of exchange is an important point and one that has already been raised in the past by bitcoin bulls. Using a volatile asset in exchange for goods and services makes little sense if the asset can tumble 10% in a day, or surge 80% over the course of a two months as bitcoin has done in 2021, critics argue. To put a finer point on it, over the past 12 months bitcoin has registered 8 corrections, defined as a decline from a recent peak of at least 10% but not more than 20%, and two bear markets, which are defined as falls of 20% or more, according to Dow Jones Market Data.